home *** CD-ROM | disk | FTP | other *** search
/ Christina Milan AM to PM / Christina Milan - AM to PM.iso / christin.dir / 00020_Script_Sway < prev    next >
Text File  |  2001-08-09  |  5KB  |  194 lines

  1. -- DESCRIPTION --
  2.  
  3. on getBehaviorDescription me
  4.   return "¼
  5. SWAY"&RETURN&RETURN&"¼
  6. Rotates a sprite first one way then the other by a given angle per frame."&¼
  7. RETURN&RETURN&"¼
  8. PERMITTED MEMBER TYPES:"&RETURN&PermittedMemberTypes (me)&RETURN&RETURN&"¼
  9. * Number of degrees to rotate in each frame"&RETURN&"¼
  10. * Number of frames to move in each direction"&RETURN&"¼
  11. * Initial rotation angle"&RETURN&"¼
  12. * Start off clockwise | anticlockwise"
  13. end getBehaviorDescription
  14.  
  15.  
  16. on getBehaviorTooltip me
  17.   return "¼
  18. Use with Bitmap, Flash, Text"&RETURN&"¼
  19. and Vector Shape members."&RETURN&RETURN&"¼
  20. Rotates a sprite first one"&RETURN&"¼
  21. way then the other by a given"&RETURN&"¼
  22. angle/frame"
  23. end getBehaviorTooltip
  24.  
  25.  
  26.  
  27. -- NOTES FOR DEVELOPERS --
  28.  
  29. -- The main handler is Turn me, activated on each prepareFrame.  This
  30. -- simply decrements the myCounter property, and turns the sprite a fixed
  31. -- angle either clockwise or anticlockwise, according to the current value
  32. -- of the myClockwise property.  When myCounter reaches zero, myClockwise
  33. -- is set to the complementary boolean value, and myCounter is reset to
  34. -- myFrameCount.
  35.  
  36.  
  37.  
  38. -- HISTORY --
  39.  
  40. -- 14 September 1998: written for the D7 Behaviors Palette by James Newton
  41. -- 23 November 1998:  descriptions revised, getPDL simplified
  42.  
  43.  
  44.  
  45. -- PROPERTIES --
  46.  
  47. property mySprite
  48. -- author-defined parameters
  49. property myAnglePerFrame
  50. property myFrameCount
  51. -- internal properties
  52. property myCounter
  53. property myClockwise
  54.  
  55.  
  56.  
  57. -- EVENT HANDLERS --
  58.  
  59. on beginSprite me
  60.   Initialize me
  61. end beginSprite
  62.  
  63.  
  64. on prepareFrame me
  65.   if not myCounter then ChangeDirection me
  66.   Turn me
  67. end prepareFrame
  68.  
  69.  
  70.  
  71.  
  72. -- CUSTOM HANDLERS --
  73.  
  74. on Initialize me -- sent by beginSprite
  75.   mySprite = sprite(me.spriteNum)
  76.   
  77.   -- Error checking
  78.   memberType = mySprite.member.type
  79.   if not PermittedMemberTypes(me).getPos(memberType) then
  80.     ErrorAlert (me, #invalidMemberType, memberType)
  81.   end if
  82.   -- End of error checking
  83.   
  84.   myCounter   = myFrameCount
  85. end Initialize
  86.  
  87.  
  88. on Turn me -- sent by prepareFrame
  89.   myCounter = myCounter - 1
  90.   if myClockWise then
  91.     newAngle = mySprite.rotation + myAnglePerFrame
  92.   else
  93.     newAngle = mySprite.rotation - myAnglePerFrame
  94.   end if
  95.   
  96.   mySprite.rotation = newAngle
  97. end Turn
  98.  
  99.  
  100. on ChangeDirection me
  101.   myClockWise = not myClockWise
  102.   myCounter = myFrameCount
  103. end ChangeDirection
  104.  
  105.  
  106.  
  107. -- ERROR CHECKING --
  108.  
  109. on ErrorAlert me, theError, data
  110.   -- sent by getPropertyDescriptionList, Initialize
  111.   
  112.   case theError of
  113.     #getPDLError:
  114.       alert "¼
  115. Error: This behavior works only with the following members types:   "&¼
  116. permittedMemberTypes(me)&RETURN&RETURN&"¼
  117. Hit OK and then delete this behavior from the sprite."&RETURN&"¼
  118. For more information on deleting Behaviors, see the Help system."
  119.       if the optionDown then
  120.         return ¼
  121.  [ ¼
  122.  #getPDLError: ¼
  123.  [ ¼
  124.   #comment: "ERROR:  Wrong member type.  Click 'Cancel'.", ¼
  125.   #format:  #string, ¼
  126.   #range:   [""], ¼
  127.   #default:  "" ¼
  128.  ] ¼
  129. ]
  130.       end if
  131.       
  132.     otherwise
  133.       -- Determine the behavior's name
  134.       behaviorName = string (me)
  135.       delete word 1 of behaviorName
  136.       delete the last word of behaviorName
  137.       delete the last word of behaviorName
  138.       
  139.       case theError of
  140.         #invalidMemberType:
  141.           alert "¼
  142. BEHAVIOR ERROR: Frame "&the frame&", Sprite "&me.spriteNum&RETURN&RETURN&"¼
  143. Behavior "&behaviorName&" only functions with the following member types:"&¼
  144. RETURN&permittedMemberTypes()&RETURN&RETURN&¼
  145. "Current type = #"&data
  146.           halt
  147.           
  148.       end case
  149.   end case
  150. end ErrorAlert
  151.  
  152.  
  153.  
  154. -- AUTHOR-DEFINED PARAMETERS --
  155.  
  156. on getPropertyDescriptionList me
  157.   
  158.   if not the currentSpriteNum then exit
  159.   
  160.   -- Error check: does current sprite contain appropriate member type?
  161.   theMember = sprite(the currentSpriteNum).member
  162.   memberType = theMember.type
  163.   permittedTypes = PermittedMemberTypes(me)
  164.   if not permittedTypes.getPos(memberType) then
  165.     return errorAlert (me, #getPDLError, permittedTypes)
  166.   end if
  167.   
  168.   return ¼
  169. [ ¼
  170.  #myAnglePerFrame: ¼
  171.  [ ¼
  172.   #comment: "Angle to rotate in each frame:", ¼
  173.   #format:  #float, ¼
  174.   #range:  [#min: 0, #max: 180], ¼
  175.   #default:  10 ¼
  176.  ], ¼
  177.  #myFrameCount: ¼
  178.  [ ¼
  179.   #comment: "Number of frames to move in each direction:", ¼
  180.   #format:  #integer, ¼
  181.   #default:  10 ¼
  182.  ] ¼
  183. ]
  184. end getPropertyDescriptionList
  185.  
  186.  
  187. on PermittedMemberTypes me
  188.   -- sent by:
  189.   -- getBehaviorDescription
  190.   -- getPropertyDescriptionList
  191.   -- Initialize
  192.   -- ErrorAlert
  193.   return [#bitmap, #flash, #text, #vectorShape]
  194. end PermittedMemberTypes